# coding:utf-8
"""
    @author : 计祝兵
    @date : 2024/6/3 14:31
    @file : filter_resumes.py
    @desc : 简历筛选：筛选出包含指定关键字的简历
"""
import glob
from docx import Document


# 定义一个search的class类

class ReadDoc(object):
    def __init__(self, path):
        self.doc = Document(path)
        self.p_text = ''  # docx中的段落内容
        self.table_text = ''  # docx中的表格内容

        # 将docx中的表格和段落内容设置到self中
        self.get_param()
        self.get_table()

    # 定义一个读取段落内容的方法
    def get_param(self):
        for p in self.doc.paragraphs:
            self.p_text += p.text + "\n"

    # 读取表格内容的方法
    def get_table(self):
        for table in self.doc.tables:
            for row in table.rows:
                _cell_text = ''  # 表格中每一行的内容
                for cell in row.cells:
                    _cell_text += cell.text + ','
                self.table_text += _cell_text + '\n'


# 定义方法搜索路径下的docx文件中的关键字
def search_key(path, targets):
    result = glob.glob(path)

    final_result = []

    for i in result:
        isuse = True
        # 首先判断该文件是不是文件，如果是的话继续，否则，如果是文件夹之类的则跳过
        if glob.os.path.isfile(i):
            # 判断是不是docx类型的文件
            if i.endswith('.docx'):
                doc = ReadDoc(i)
                # 段落内容
                p_text = doc.p_text
                # 表格内容
                p_table = doc.table_text
                # 将段落内容和表格内容进行拼接
                all_text = p_text + p_table

                # 遍历要搜索的关键字
                for targe in targets:
                    if targe not in all_text:
                        isuse = False
                        break

                if not isuse:
                    continue
                final_result.append(i)
    return final_result


if __name__ == "__main__":
    path = glob.os.path.join(glob.os.getcwd(), "*")
    res = search_key(path, ['python'])
    print(res)
